In [1]:
K.<i> = QuadraticField(-1)
In [2]:
E = EllipticCurve([i+1,i-1,i+1,-5*i,2*i])
NE = E.conductor()
S = NE.prime_factors()
print(E)
print("Bad primes: {}".format(S))
In [3]:
%runfile C2C3S3.py
%runfile T0T1T2.py
In [4]:
get_T0(K,S)
Out[4]:
In [5]:
C3S3_extensions(K,S)
Out[5]:
In [6]:
E.two_torsion_rank()
Out[6]:
In [7]:
T2_data = get_T2(K,S)
T2 = T2_data.values()
T2
Out[7]:
In [8]:
BB = BlackBox_from_elliptic_curve(E)
t1 = BB_t1(BB)
[t1(P) for P in T2]
Out[8]:
In [9]:
norms = [P.norm() for P in T2]
traces = [E.reduction(P).trace_of_frobenius() for P in T2]
[(P, nP, aP, 1-aP+nP) for P,aP,nP in zip(T2,traces,norms)]
Out[9]:
In [10]:
vecs = []
plist = []
basis = [i,1+i,4+5*i]
np = 2**len(basis)
xK = polygen(K)
primes = primes_iter(K,1)
while len(plist)<np:
P = primes.next()
if P in S:
continue
vec = [lam(xK^2-d,P) for d in basis]
if not vec in vecs:
vecs.append(vec)
plist.append(P)
print("adding P={} with vector {}".format(P,vec))
[P.gens_reduced()[0] for P in plist]
Out[10]:
In [ ]:
In [ ]: